package com.br.estoque;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import com.br.sku.Sku;

@Entity
@Table(name="estoque")
public class Estoque implements Serializable{

	
	private static final long serialVersionUID = -7394349133615670442L;
	
	
	@Id
	@GeneratedValue
	@Column(name="id_estque")
	private Integer idEstoque;
	
	@OneToOne
	@JoinColumn(name="id_sku")
	private Sku sku;
	
	private String nomeProduto;
	
	
	public Estoque() {
		
	}


	public Estoque(Integer idEstoque, Sku sku, String nomeProduto) {
		super();
		this.idEstoque = idEstoque;
		this.sku = sku;
		this.nomeProduto = nomeProduto;
	}


	public Integer getIdEstoque() {
		return idEstoque;
	}


	public void setIdEstoque(Integer idEstoque) {
		this.idEstoque = idEstoque;
	}


	public Sku getSku() {
		return sku;
	}


	public void setSku(Sku sku) {
		this.sku = sku;
	}


	public String getNomeProduto() {
		return nomeProduto;
	}


	public void setNomeProduto(String nomeProduto) {
		this.nomeProduto = nomeProduto;
	}


	public static long getSerialversionuid() {
		return serialVersionUID;
	}


	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result
				+ ((idEstoque == null) ? 0 : idEstoque.hashCode());
		result = prime * result
				+ ((nomeProduto == null) ? 0 : nomeProduto.hashCode());
		result = prime * result + ((sku == null) ? 0 : sku.hashCode());
		return result;
	}


	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Estoque other = (Estoque) obj;
		if (idEstoque == null) {
			if (other.idEstoque != null)
				return false;
		} else if (!idEstoque.equals(other.idEstoque))
			return false;
		if (nomeProduto == null) {
			if (other.nomeProduto != null)
				return false;
		} else if (!nomeProduto.equals(other.nomeProduto))
			return false;
		if (sku == null) {
			if (other.sku != null)
				return false;
		} else if (!sku.equals(other.sku))
			return false;
		return true;
	}


	@Override
	public String toString() {
		return "Estoque [idEstoque=" + idEstoque + ", sku=" + sku
				+ ", nomeProduto=" + nomeProduto + "]";
	}
	

}
